home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok20.lha / ComplexLib / txt / LongComplexInOut.mod < prev    next >
Text File  |  1993-08-15  |  2KB  |  80 lines

  1.  
  2. (*********************************************************************
  3.  
  4.     :Program.       LongComplexInOut.mod
  5.     :Author.        Gary Struhlik  
  6.     :Address.    -
  7.     :Phone.      -
  8.     :shortcut.      [gs]
  9.     :Version.       1.0   
  10.     :Date.          22.10.1988
  11.     :Copyright.  PD
  12.     :Language.      Modula-II
  13.     :Translator. M2Amiga
  14.     :Imports.     LongComplexLib [gs]
  15.     :UpDate.     -
  16.     :Contents.     Ein- Ausgabe für komplexe Zahlen
  17.     :Remark.     Für den Amiga Modula-2 Klub / Stuttgart
  18.     :Remark.     Am 01.01.1989 mit M2Amiga 3.2d neu kompiliert
  19.  
  20. **********************************************************************)
  21.  
  22. IMPLEMENTATION MODULE LongComplexInOut;
  23.  
  24. FROM LongComplexLib IMPORT LONGCOMPLEX,cpol,crec;
  25. IMPORT LongRealInOut; 
  26. FROM InOut IMPORT WriteLn,WriteString; 
  27. FROM LongRealConversions IMPORT RealToStr;
  28.   
  29. PROCEDURE WriteComplex( A : LONGCOMPLEX; m,n : INTEGER; expo,pol : BOOLEAN );
  30. VAR
  31.     s1,s2 : ARRAY [0..79] OF CHAR;
  32.         logo : BOOLEAN;
  33.         x : LONGREAL;
  34.         Y : LONGCOMPLEX;
  35. BEGIN
  36.    IF NOT pol THEN
  37.     x:=ABS(A.IM);
  38.     RealToStr(A.RE,s1,m,n,expo,logo);
  39.     RealToStr(x,s2,m,n,expo,logo);
  40.     IF A.IM >= 0.0 THEN 
  41.           WriteString(s1); WriteString('+j'); WriteString(s2)
  42.         ELSE
  43.           WriteString(s1); WriteString('-j'); WriteString(s2)
  44.         END
  45.    ELSE
  46.         cpol(Y,A); (* A in Polarform umwandeln *) 
  47.         RealToStr(Y.RE,s1,m,n,expo,logo);
  48.         RealToStr(Y.IM,s2,m,n,expo,logo);
  49.         WriteString(s1); WriteString(' <'); WriteString(s2) 
  50.    END
  51. END WriteComplex;  
  52.  
  53. PROCEDURE ReadComplex( VAR A : LONGCOMPLEX; pol : BOOLEAN);
  54. VAR
  55.     X : LONGCOMPLEX;
  56. BEGIN
  57.      IF NOT pol THEN
  58.     LongRealInOut.ReadReal(A.RE); LongRealInOut.ReadReal(A.IM)
  59.      ELSE
  60.         LongRealInOut.ReadReal(A.RE); LongRealInOut.ReadReal(A.IM);
  61.         crec(A,A)
  62.      END   
  63. END ReadComplex;        
  64.  
  65. PROCEDURE WriteReal( x : LONGREAL; m,n : INTEGER; expo : BOOLEAN);
  66. VAR
  67.     s : ARRAY [0..79] OF CHAR;
  68.         logo : BOOLEAN;
  69. BEGIN
  70.     RealToStr(x,s,m,n,expo,logo);
  71.         WriteString(s)
  72. END WriteReal;
  73.  
  74. PROCEDURE ReadReal( VAR x : LONGREAL);
  75. BEGIN
  76.     LongRealInOut.ReadReal(x)
  77. END ReadReal;                        
  78.  
  79. END LongComplexInOut.
  80.